home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Archives / ForCLI / Empty.lha / Empty.mod < prev    next >
Text File  |  1993-02-02  |  4KB  |  97 lines

  1. MODULE Empty;
  2.  
  3.       (* Empty.mod - CLI-Befehl, der überprüft ob die als Argument angegeben
  4.        *             Datei leer ist (die Länge 0) hat.
  5.        * Version   : 1.1 (2. Februar 1993)
  6.        * Compiler  : M2Amiga V4.107d
  7.        *             m2c -zyned Empty.mod
  8.        *             m2l -cdr Empty.obj
  9.        * Autor     : Fin Schuppenhauer, Braußpark 10, W-2000 Hamburg 26
  10.        *             (ab 1. Juli 1993: Fin S., Braußpark 10, D-20537 Hamburg)
  11.        * Copyright : © 1993 by Fin Schuppenhauer
  12.        *             Diese Programm darf nur zusammen mit den Dateien
  13.        *             Empty.mod, Empty.dok, Empty.readme und Empty auf
  14.        *             elektronischem Wege (auch gepackt) oder auf Public
  15.        *             Domain-Disk vertrieben werden. Eine kommerzielle
  16.        *             Verbreitung ist ohne Genehmigung des Autors untersagt.
  17.        *             Dieses Programm darf beliebig verändert werden, vor-
  18.        *             ausgesetzt das Copyright bleibt erhalten. Für die
  19.        *             daraus resultierenden Dateien gilt gleiches.
  20.        * Sonstiges : Fehlerberichte, Wünsche, Kritik, Geschenke, Mitleids-
  21.        *             bekundungen und ähnliches dürfen an obige Adresse
  22.        *             geschickt werden. Drohungen, Brief- und Paketbomben
  23.        *             und ähnliche psychisch-physisch schädigende Mitteil-
  24.        *             ungen bitte an: meinen derzeitigen Feind (der Name
  25.        *             von ihm/ihr ist an Deiner Haustür zu finden, die
  26.        *             Adresse im Telefonbuch.
  27.        * Syntax    : siehe Empty.dok
  28.        * Geschichte: 1.0  (01-Feb-93) Erste, sofort funktionsfähige Version
  29.        *                  unter Verwendung des FileSystem-Modul. (niemals
  30.        *                  veröffentlicht)
  31.        *             1.1  (02-Feb-93) FileSystem durch DosD/L ersetzt.
  32.        *                  Fehlerroutinen eingebaut.
  33.        *)
  34.  
  35. IMPORT   dd:DosD,    dl:DosL;
  36. FROM Arguments IMPORT NumArgs, GetArg;
  37. FROM Arts      IMPORT returnVal, Terminate;
  38. FROM String    IMPORT Length;
  39. FROM SYSTEM    IMPORT ADR;
  40.  
  41.    (*$ CopyDyn := FALSE *)
  42.    PROCEDURE Exit (msg : ARRAY OF CHAR);
  43.    VAR   output   : dd.FileHandlePtr;
  44.          err      : LONGINT;
  45.    BEGIN
  46.       output := dl.Output();
  47.       (*$ StackParms:=TRUE *)
  48.       err := dl.Write(output, ADR(msg), Length(msg));
  49.       (*$ POP StackParms *)
  50.       Terminate();
  51.    END Exit;
  52.  
  53.    PROCEDURE ShowTemplate;
  54.    BEGIN
  55.       Exit ("EMPTY FILE/A\n");
  56.    END ShowTemplate;
  57.  
  58. TYPE String=ARRAY [0..79] OF CHAR;
  59. VAR version :=String{"$VER: empty 1.1 (2.2.93) © 1993 by Fin Schuppenhauer, PUBLIC DOMAIN"};
  60.  
  61. VAR   args,                               (* Anzahl der Argumente       *)
  62.       len      : INTEGER;                 (* für GetArtg()              *)
  63.       file     : dd.FileLockPtr;          (* Lock auf Datei             *)
  64.       fileInfo : dd.FileInfoBlock;        (* Infos über <file>          *)
  65.       filename : ARRAY [0..255] OF CHAR;  (* Name der Datei (Argument)  *)
  66. BEGIN
  67.    returnVal := dd.ok;
  68.    args := NumArgs();
  69.    IF args=1 THEN
  70.       GetArg (1, filename, len);
  71.       IF filename[0]="?" THEN
  72.          ShowTemplate;
  73.          Exit ("Ok.\n");
  74.       END;
  75.  
  76.       file := dl.Lock(ADR(filename), dd.readOnly);
  77.       IF dl.IoErr()#0 THEN Exit("File not found (or other IO-Error).\n"); END;
  78.       IF dl.Examine(file, ADR(fileInfo)) THEN
  79.          IF fileInfo.size=0 THEN returnVal := dd.warn; END;
  80.       ELSE
  81.          Exit ("Examine-Error.\n");
  82.       END;
  83.       dl.UnLock (file);
  84.    ELSE
  85.       Exit ("Bad args.\n");
  86.    END;
  87.  
  88. (*      fs.Lookup (file, filename, 1024, FALSE);
  89.       IF file.res=fs.done THEN
  90.          fs.Length(file, length);
  91.          IF length=0 THEN
  92.             returnVal := dd.warn;
  93.          END;
  94.       END;
  95.    END;*)
  96. END Empty.
  97.